package com.buss.core.dao;

import java.io.Serializable;

import com.buss.core.model.Organization;
import com.buss.core.persistence.OrderBy;
import com.buss.core.persistence.ResultList;

/**
 * 机构信息操作
 * @author gykl
 *
 */
public interface OrganizationDao extends Serializable{
	/**
	 * 新增机构信息
	 * @param adminUserOrgan
	 */
	public void saveOrganization(Organization organization);
	
	/**
	 * 保持机构信息，并返回带主键的用户角色信息
	 * @param adminUserOrgan
	 * @return
	 */
	public Organization mergeOrganization(Organization organization);
	
	/**
	 * 修改机构信息
	 * @param adminUserOrgan
	 */
	public void editOrganization(Organization organization);
	
	/**
	 * 删除机构信息
	 * @param id
	 */
	public void deleteOrganization(Long[] ids);
	
	/**
	 * 获取指定机构信息
	 * @param id
	 * @return
	 */
	public Organization loadOrganization(Long id);
	
	/**
	 * 根据父机构编码获取所有节点机构信息
	 * @param parentId
	 * @return
	 */
	public ResultList<Organization> queryByParentId(String companyId, Long parentId,OrderBy orderBy);
	
	/**
	 * 更新节点数
	 * @param id
	 * @param num
	 */
	void updateNodeNum(Long id,long num);
}
